package dao;


import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.swing.JOptionPane;

import bean.Curso;
import bean.Horarios;
/*
 * estou usando como modelo as classes "HorarioDao" e "ControladorHorarios" que Junior crio
 */
public class CursoDao {
	
	public void salvarCurso(Curso curso){
		
		EntityManager em = FabricaConexao.getConexao().createEntityManager();
		
		try{
			em.getTransaction().begin();//iniciando conexão
			Curso c = em.find(Curso.class, curso.getCodCurso());
			if(!curso.equals(c)){
				em.persist(curso);
				JOptionPane.showMessageDialog(null, "Curos cadastrado com sucesso!");
			} else {
				em.merge(curso);
				JOptionPane.showMessageDialog(null, "Curso alterado com sucesso!");
			}
			
			em.getTransaction().commit();
		} finally {
			em.close();//fechando conexão
		}
	}
	
	
	  public Curso alterarCurso(Curso curso) {//método para atualizar
		  EntityManager em = FabricaConexao.getConexao().createEntityManager();
		    try {
		      em.getTransaction().begin();
		      if(curso.getCodCurso() == 0) {
		    	  JOptionPane.showMessageDialog(null, "Curso não existente!");
		      } else {
		    	  curso = em.merge(curso);
		      }
		      em.getTransaction().commit();
		    } finally {
		      em.close();
		    }
		    return curso;
		  }
	
	
	
	
	
	
    public void excluirCurso(int id) {

        EntityManager em = FabricaConexao.getConexao().createEntityManager();
        
        try {
            em.getTransaction().begin();
            Curso curso = em.find(Curso.class, id);
            em.remove(curso);
            em.getTransaction().commit();
            JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");

        } finally {
            em.close();
        }
     }
		
	public List<Curso> listarCurso() {

		EntityManager em = FabricaConexao.getConexao().createEntityManager();
		
		List<Curso> lista;
		Query query = em.createQuery("Select c from Curso c");
		lista = query.getResultList();
		return lista;
	}
	
	  public Curso consultaCurso(int id) {
		  EntityManager em = FabricaConexao.getConexao().createEntityManager();
		    Curso curso = null;
		    try {
		      //Consulta um curso pelo seu ID.
		      curso = em.find(Curso.class, id);
		    } finally {
		      em.close();
		    }
		    return curso;
		  }

	
}
